Use of self-driving vehicles and mapping for pedestrian defined crosswalks

ABSTRACT

An apparatus to generate a user-defined crosswalk comprises a processor to receive an input from a user to request a crosswalk across a roadway at a selected location and a memory coupled to the processor to store information regarding the crosswalk. The processor is to transmit the request to one or more vehicles using the roadway, and to receive a response indicating whether the crosswalk request is accepted such that the one or more vehicles are to stop to allow the user to cross the roadway using the crosswalk at the selected location in the event the crosswalk request is accepted.

FIELD

The present disclosure generally relates to the field of electronics.More particularly, an embodiment relates to self-driving vehicles andsystems.

BACKGROUND

Solutions to smart crosswalks have been proposed, for example, theStarling Crossing that reacts dynamically in real-time to differentconditions and is able to modify the patterns, layout, configuration,size, and orientation of pedestrian crossings in order to prioritizepedestrian safety. Alphabet's Sidewalk Labs aims to design and create amodel smart city which would involve smart crosswalks. These solutions,however, do not allow a pedestrian to define their own crosswalks andstill rely on human drivers to stop for pedestrians, thereby increasingthe chances of an accident.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is provided with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different figures indicates similaror identical items.

FIG. 1 is a diagram of an environment in which a pedestrian definedcrosswalk may be deployed in accordance with one or more embodiments.

FIG. 2 is a diagram of an application running on a smartphone or similardevice to generate a pedestrian defined crosswalk in accordance with oneor more embodiments.

FIG. 3 is a flow diagram of a method to generate a pedestrian definedcrosswalk in accordance with one or more embodiments.

FIG. 4 is a diagram of a computing system to generate a pedestriandefined sidewalk in an environment in accordance with one or moreembodiments.

FIG. 5 illustrates a block diagram of a system on chip (SOC) package inaccordance with an embodiment.

FIG. 6 is a block diagram of a processing system according to anembodiment.

FIG. 7 is a block diagram of a processor having one or more processorcores, an integrated memory controller, and an integrated graphicsprocessor in accordance with one or more embodiments.

FIG. 8 is a block diagram of a graphics processor, which may be adiscrete graphics processing unit, or may be a graphics processorintegrated with a plurality of processing cores in accordance with oneor more embodiments.

FIG. 9 is a generalized diagram of a machine learning software stack inaccordance with one or more embodiments.

FIG. 10 illustrates training and deployment of a deep neural network inaccordance with one or more embodiments.

DETAILED DESCRIPTION

In the following description, numerous specific details are set forth inorder to provide a thorough understanding of various embodiments.However, various embodiments may be practiced without the specificdetails. In other instances, well-known methods, procedures, components,and circuits have not been described in detail so as not to obscure theparticular embodiments. Further, various aspects of embodiments may beperformed using various means, such as integrated semiconductor circuits(“hardware”), computer-readable instructions organized into one or moreprograms (“software”), or some combination of hardware and software. Forthe purposes of this disclosure reference to “logic” shall mean eitherhardware, software, firmware, or some combination thereof.

Referring now to FIG. 1, a diagram of an environment in which apedestrian defined crosswalk may be deployed in accordance with one ormore embodiments will be discussed. In environment 100, pedestrian 130may desire to define his or her own crosswalk 134 across roadway 128 ata location where a crosswalk may not exist. In some embodiments,pedestrian 130 may use a smartphone 132 or similar device such as asmartwatch, tablet, personal computer, or other computing device, tocreate a pedestrian defined crosswalk 134 at a desired location acrossroadway, for example using a mapping application running on smartphone132. The smartphone 132 may be in communication with an evolved Node B(eNB) 116 of a Long-Term Evolution (LTE) cellular network, or a FifthGeneration (5G) Node B (gNB) of a 5G cellular network, and so on. TheeNB 116 (or gNB) may be coupled to an evolved packet core (EPC) 118,which may be a 5G EPC, of the cellular network and may couple to anothernetwork 120 such as the Internet to couple the smartphone 132 to aremote server or cloud server 122.

One or more automobiles or cars such as car 110, car 112, and/or car 114may be driving on roadway 128. Although three cars are shown in FIG. 1for purposes of discussion, environment 100 may include any number ofcars, N number of cars, and the scope of the claimed subject matter isnot limited in this respect. One or more of the cars may include aself-driving system or driver assist system coupled to one or moresensors to obtain data to be processed for decision making, for exampleto implement autonomous driving or driver assistance for the cars whilebeing operated on the roadway 128. In some embodiments of environment100, the cars may report their status directly to each other, forexample via network 126 or through the cellular network via wirelesslinks 124. In such an arrangement, one or more of the cars may becoupled with eNB 116 of the cellular network operating in accordancewith a Third Generation Partnership Project (3GPP) standard. In suchembodiments, eNB 116 or gNB may be part of the EPC 118 that may operatesin accordance with a 5G New Radio standard wherein one or more of thecars may operate as a user equipment (UE) device, although the scope ofthe claimed subject matter is not limited in this respect.

Thus, the cars environment 100 may be in communication with one anotherfor data transfer via eNB 116 of a 5G based EPC 118. EPC 118 in turn maybe coupled to a network 120 such as the Internet to allow one or more ofthe cars to couple to a remote server 122 or cloud server to facilitatecoordination of data collated from one or more cars to assist with orprovide decision making facilities for the one or more cars, or forexample to implement or to provide updates to the algorithms running onthe decision-making systems in one or more of the cars based oncrowdsourced or machine learning techniques, although the scope of theclaimed subject matter is not limited in these respects. For example,remote server 122 may provide additional processing power to adecision-making process, and further may use various algorithms such asmachine learning or deep learning to the decision-making process for anyone or more of the cars, individually or collectively, and the scope ofthe claimed subject matter is not limited in these respects. Theprocessing results of remote server 122 may then be transmitted back tothe one or cars via the radio links of EPC 118 provided by eNB 116. Inone or more embodiments, the radio links with EPC 118 via eNB 116 may beutilized, for example, to transmit the sensor data of one or more carsor other agents to one or more other agents to facilitate thedecision-making process of a given vehicle or agent.

In some embodiments, one or more of the cars may communicate directlywith one or more other cars in proximity to each other. For example, amesh network 126 or similar network or connection such as a wirelesslocal area network (WLAN) or PC5 connection in accordance with a ThirdGeneration Partnership Project (3GPP) standard may be establishedbetween two or more adjacent cars or other agents, for example using anysuitable radio technology such as wireless communication in compliancewith an Institute of Electrical and Electronics Engineers (IEEE) 802.11xstandard or the like, or using proximity-based services (ProSe) sidelinkin accordance with a Third Generation Partnership Project (3GPP)standards using a PC5 interface between one or more cars or otheragents, although the scope of the claimed subject matter is not limitedin these respects. In one or more embodiments, such a mesh network 126or sidelink may be utilized, for example, to transmit the sensor data ofone or more cars or other agents to one or more other agents tofacilitate the decision-making process of a given vehicle or agent. Sucha mesh network 126 or sidelink may be used alone or in combination withthe radio link to EPC 118 via eNB 116, although the scope of the claimedsubject matter is not limited in this respect.

As will be discussed in further detail below, pedestrian 130 may submita request to generate the pedestrian defined crosswalk 134 so that thepedestrian 130 may cross roadway 128 at a desired location. One or moreof the cars may receive the request, and if implemented, the cars mayautomatically stop at or proximate to the location of the crosswalk 134,for example where the cars are self-driving vehicles or are beingoperated in a self-driving mode. Alternatively, if the cars areoperating with a driver-assist system, the drives of the cars may bealerted or notified to stop at or proximate to the location of thecrosswalk 134. In another embodiment, instead of generating a pedestriandefined crosswalk 134 with a smartphone 132, other devices inenvironment 100 may detect the presence of the pedestrian near roadway128, and such devices may then communicate the request for the crosswalk134 to the cars so that the cars may stop at or near the location of thecrosswalk 134. In such other embodiments, the devices may include acamera 136 or other sensors which may be mounted on a light pole 138,post, or similar structure, and which may include its own radio andantenna 140 to communicate with eNB 116 to communicate with the cars.Alternatively, the radio and antenna 140 of such devices may communicatedirectly with the cars, for example via mesh network 126, and the scopeof the claimed subject matter is not limited in these respects.

In one or more embodiments, the mapping application running on thesmartphone 132 of the pedestrian 130 may allow the pedestrian 130 todefine a crosswalk 134 at some point on roadway 128. Defining acrosswalk 134 may be accomplished in a variety of ways such as tracingthe crosswalk on the smartphone 132 with a stylus or finger, byselecting two points on a map, or using the current position of thepedestrian 130 to determine an optimal location for the crosswalk 134.After the pedestrian 130 submits the crosswalk 134 with the mappingapplication, one or more self-driving vehicles that would encounter thiscrosswalk 134 may be notified. Alternative methods of defining thecrosswalk 134 also may be used such as gesture, eye tracking, and/or orvoice activation.

The self-driving vehicles may send feedback to the smartphone 132suggesting an alternative location to crosswalk 134, for example at alocation that is more optimal for traffic and/or safety of thepedestrian 130. The self-driving vehicles may provide additionalinformation such as an estimate as to how long the pedestrian 130 mustwait before the crosswalk 134 is available. The self-driving vehicleswill then decide when to stop for the pedestrian 130 which may involvedetermining the location of other self-driving vehicles in the area andcoordinating a time optimal for traffic. The self-driving vehicles thenmay block traffic at the determined location of the crosswalk 134 toallow one or more pedestrians 130 to cross roadway 128 safely.

Since the self-driving vehicles already may have the ability tocommunicate with one or more other self-driving vehicles in a certainvicinity, establishing a connection between the smartphone 132 and anynearby self-driving cars may be sufficient to inform one or more nearbyself-driving vehicles of the proposed crosswalk 134. A connection couldalso be established between the smartphone 132 and a local or externalsystem such as server 122 via eNB 116 (or gNB) and EPC 118. Such localor external systems may coordinate with the nearby self-drivingvehicles. Alternatively, the smartphone 132 may communicate with anexternal system other than the self-driving vehicles which is capable ofmonitoring and/or directing self-driving traffic.

Referring now to FIG. 2, a diagram of an application running on asmartphone or similar device to generate a pedestrian defined crosswalkin accordance with one or more embodiments will be discussed. Thesmartphone 132 of pedestrian 130 may be running a mapping program whichmay display a map 220 of the streets in the vicinity of the pedestrian130 on the display of the smartphone 132. For example, the map 220 mayinclude a portion of the roadway 128 in the vicinity of pedestrian 130.The pedestrian 130 as the user of the smartphone 132 may define andsubmit a desired crosswalk to the mapping program 134 across roadway 128on the map 220 at location 210. Alternatively, the mapping program mayautomatically generate a proposed crosswalk 134 at a location 210 asdetermined by the mapping program, for example based on the direction inwhich the pedestrian is headed, the present location of the pedestrian,the programmed destination of the pedestrian 130, or the destination ofthe pedestrian 130 as estimated from the mapping program, and so on, ora combination thereof.

The mapping program of smartphone 132 may then transmit the proposedcrosswalk 134 at location 210 to one or more vehicles in the area, oralternatively to a server 122 that may make crosswalk decisions. Basedat least in part on the expected traffic, geographical features,topology, legal permissions, or legal prohibitions, and so on, the oneor more cars and/or the server 122 may determine whether or not thepedestrian 130 should be allowed to cross at a crosswalk 134 defined atlocation 210. If the proposed crosswalk 134 is acceptable, the cars maybe automatically self-stopped, the server 122 may cause the cars to stopby issuing a command to the cars, or the users of the cars may beprovided with information indicating the cars should be stopped by theirdrivers, at location 210 so that the pedestrian 130 may cross roadway128 via the crosswalk 134. In some embodiments, such decisions may beperformed wholly, or at least in part in conjunction with one or moreother devices such as the cars and/or server 122, by the mapping programrunning or some hardware or other application running on the smartphone132.

If a better time and/or location is determined for the crosswalk 134, atime estimate 216 and/or new location 212 may be determined and providedfor when and where the pedestrian 130 may cross roadway 128. Forexample, the time estimate and/or new location 212 may be proposed bythe decision-making device or software. As a result, the pedestrian 130is given a time estimate 216 and an indication 214 to not cross at theoriginally proposed crosswalk 134 at location 210. The pedestrian 130may then decline or accept the proposal, for example automatically withthe mapping program or manually via input to the smartphone 132. Whenthe pedestrian 130 accepts the time estimate and/or new location 212,the cars may be automatically self-stopped, the server 122 may cause thecars to stop by issuing a command to the cars, or the users of the carsmay be provided with information indicating the cars should be stoppedby their drivers, at new location 212 so that the pedestrian 130 maycross roadway 128 via the crosswalk 134. An indication 218 may beprovided on the display of the smartphone 218 indication that thepedestrian 130 may cross roadway 128 at the new location 212 of thecrosswalk 134.

In one or more embodiments, a proposed crosswalk 134 may be generatedusing the smartphone 132 via any one or more of a variety of inputmodalities such as air or touch gestures, voice input, face and eyetracking, and so on. Similarly, outputs, feedback, or other indicatorsto the pedestrian 130 regarding the mapping program, the estimate timeand/or new location 212, and other indicators may be generated bysmartphone 312 using a variety of output modalities such as aprojection, the display screen, sound generating devices and/orspeakers, and/or haptic output. The pedestrian 130 as the user of thesmartphone may define a proposed crosswalk 134 in a variety of ways formapping application, for example drawing a crosswalk 134 on the displayof the smartphone 132, selecting two points on the display of thesmartphone 132, selecting a spot on the roadway 128, and so on. In someembodiments, the pedestrian 130 may define a proposed crosswalk 134using a hand gesture, eye movement, voice commands, and so on, that aredetectable by one or more appropriate sensors of the smartphone 132.

In one or more embodiments, a context engine running on the smartphone132 and/or on server 122 may be utilized to determine likely decisionsof the pedestrian 130 in a given situation, for example to automaticallygenerate a proposed crosswalk 132. Machine learning may be used toenhance the accuracy of identifying likely crosswalks 134 and managingtraffic on roadway 134 in the vicinity of the crosswalk 134. Multiplepedestrians may share a single crosswalk or multiple defined crosswalksto minimize impact to traffic on roadway and/or to coordinate acrosswalk 134 that may be used by several pedestrians 130simultaneously. Furthermore, one or more pedestrians 130 may define oneor more crosswalks 134 at the same time or nearly the same time. One ormore crosswalks 134 may be defined to plan a complete route, and themapping application may predict when pedestrians 130 will arrive at eachof the proposed crosswalks along the route and have self-drivingvehicles stop accordingly. In addition, the pedestrian may be providedwith multiple alternative options for crosswalks 134 along a given routeand/or at a given area so that pedestrian 130 may select one of themultiple crosswalks 134 based on estimated time and distance. One ormore self-driving vehicles or cars may be notified of the crosswalk 134in a variety of ways including an external connection to the applicationon the smartphone 132 via the wireless links 124 to eNB 116 via thecellular network, vehicle-to-vehicle communication such as mesh network126, and/or local sensors in the cars or along the roadway 128. Itshould be note that although a pedestrian 130 is discussed for purposesof example, the user may also be bike rider, motorcyclist, a stroller, acart rider, a rider of a scooter or a skateboard, a driver of anothervehicle, and so on, and the scope of the claimed subject matter is notlimited in this respect.

Referring now to FIG. 3, a flow diagram of a method to generate apedestrian defined crosswalk in accordance with one or more embodimentswill be discussed. Method 300 may include fewer or more operations thanshown, and/or in various other orders, and the scope of the claimedsubject matter is not limited in these respects. A proposed crosswalk134 may be defined at operation 310, for example wherein a pedestrian130 draws a proposed crosswalk 134 on a mapping application running on asmartphone 132. A request for the crosswalk 134 may then be submitted atoperation 312 to one or more self-driving cars on roadway 128 and/or toone or more other external systems such as a remote server or cloudserver 122. The self-driving cars or other external systems may thenprocess the request submitted by the pedestrian 130 and may respond atoperation 314 with an acceptance message to smartphone 132 oralternatively with one or more or recommendations for an alternativelocation for the crosswalk 134 optionally including a time estimate forwhen the originally proposed crosswalk 134 or the alternativelyrecommended crosswalks 134 may be available. At operation 316 thepedestrian 130 or smartphone 132 may submit a response accepting theoriginally proposed crosswalk 134 or an alternatively proposed crosswalk134. An optimal time to stop the one or more vehicles and/or for thepedestrian 130 to cross at the crosswalk 134 may determined at operation318. The one or more self-driving cars or driver-assisted vehicles maythen stop at the accepted location of the crosswalk 134 at operation320, optionally blocking traffic, to allow the pedestrian 130 to crossthe roadway 128 at the crosswalk 134 at the selected time.

Referring now to FIG. 4, a diagram of a computing system to generate apedestrian defined sidewalk in an environment in accordance with one ormore embodiments will be discussed. The system 400 of FIG. 4 mayimplement the method 300 of FIG. 3 in whole or in part, and/or mayinclude more or fewer elements than shown, and the scope of the claimedsubject matter is not limited in these respects. A central computingdevice or platform 410 may be utilized to implement smartphone 132and/or remote sever or cloud server 122, and/or one or more computingplatforms of a self-driving car or driver-assisted vehicle. The centralcomputing platform 410 may include one or more user input analysismodules 412, a context engine 414, and an application 416 to run on oneor more processors and memory 418 of the central computing device orplatform 410. The modules of the central computing device or platform410 may be cloud-based such as cloud server 122, edge server based, orend-user based, and so on, and the scope of the claimed subject matteris not limited in this respect.

The environment 420 in which the pedestrian 130 may be traveling nearroadway 128 may include one or more external sensor arrays 420, on oneor more self-driving vehicles or driver-assisted vehicles, or otherexternal devices such as one or more cameras 136, one or moremicrophones, one or more location sensing devices and so on. Theenvironment 420 also may include a pedestrian defined crosswalk 424 torepresent crosswalk 134 across roadway 128. The environment 420 also mainclude an output device 426 for example a display, projector, one ormore speakers, one or more haptic devices, and so on, for exampleprovided in smartphone, on pole 138, on roadway 128, in one or more ofthe cars, and so on. The environment 420 also may include one or moremotor vehicles 428 such as one or more self-driving cars and/or one ormore human-operated cars that may or may not include a driver-assistsystem.

FIG. 5 illustrates a block diagram of a system on chip (SOC) package inaccordance with an embodiment. As illustrated in FIG. 5, SOC 502includes one or more Central Processing Unit (CPU) cores 520, one ormore Graphics Processor Unit (GPU) cores 530, an Input/Output (I/O)interface 540, and a memory controller 542. Various components of theSOC package 502 may be coupled to an interconnect or bus such asdiscussed herein with reference to the other figures. Also, the SOCpackage 502 may include more or less components, such as those discussedherein with reference to the other figures. Further, each component ofthe SOC package 520 may include one or more other components, e.g., asdiscussed with reference to the other figures herein. In one embodiment,SOC package 502 (and its components) is provided on one or moreIntegrated Circuit (IC) die, e.g., which are packaged into a singlesemiconductor device.

As illustrated in FIG. 5, SOC package 502 is coupled to a memory 560 viathe memory controller 542. In an embodiment, the memory 660 (or aportion of it) can be integrated on the SOC package 502.

The I/O interface 540 may be coupled to one or more I/O devices 570,e.g., via an interconnect and/or bus such as discussed herein withreference to other figures. I/O device(s) 570 may include one or more ofa keyboard, a mouse, a touchpad, a display, an image/video capturedevice (such as a camera or camcorder/video recorder), a touch screen, aspeaker, or the like.

FIG. 6 is a block diagram of a processing system 600, according to anembodiment. In various embodiments the system 600 includes one or moreprocessors 602 and one or more graphics processors 608, and may be asingle processor desktop system, a multiprocessor workstation system, ora server system having a large number of processors 602 or processorcores 607. In on embodiment, the system 600 is a processing platformincorporated within a system-on-a-chip (SoC or SOC) integrated circuitfor use in mobile, handheld, or embedded devices.

An embodiment of system 600 can include, or be incorporated within aserver-based gaming platform, a game console, including a game and mediaconsole, a mobile gaming console, a handheld game console, or an onlinegame console. In some embodiments system 600 is a mobile phone, smartphone, tablet computing device or mobile Internet device. Dataprocessing system 600 can also include, couple with, or be integratedwithin a wearable device, such as a smart watch wearable device, smarteyewear device, augmented reality device, or virtual reality device. Insome embodiments, data processing system 600 is a television or set topbox device having one or more processors 602 and a graphical interfacegenerated by one or more graphics processors 608.

In some embodiments, the one or more processors 602 each include one ormore processor cores 607 to process instructions which, when executed,perform operations for system and user software. In some embodiments,each of the one or more processor cores 607 is configured to process aspecific instruction set 609. In some embodiments, instruction set 609may facilitate Complex Instruction Set Computing (CISC), ReducedInstruction Set Computing (RISC), or computing via a Very LongInstruction Word (VLIW). Multiple processor cores 607 may each process adifferent instruction set 609, which may include instructions tofacilitate the emulation of other instruction sets. Processor core 607may also include other processing devices, such a Digital SignalProcessor (DSP).

In some embodiments, the processor 602 includes cache memory 604.Depending on the architecture, the processor 702 can have a singleinternal cache or multiple levels of internal cache. In someembodiments, the cache memory is shared among various components of theprocessor 602. In some embodiments, the processor 602 also uses anexternal cache (e.g., a Level-3 (L3) cache or Last Level Cache (LLC))(not shown), which may be shared among processor cores 607 using knowncache coherency techniques. A register file 606 is additionally includedin processor 602 which may include different types of registers forstoring different types of data (e.g., integer registers, floating pointregisters, status registers, and an instruction pointer register). Someregisters may be general-purpose registers, while other registers may bespecific to the design of the processor 602.

In some embodiments, processor 602 is coupled to a processor bus 610 totransmit communication signals such as address, data, or control signalsbetween processor 602 and other components in system 600. In oneembodiment the system 600 uses an exemplary “hub” system architecture,including a memory controller hub 616 and an Input Output (I/O)controller hub 630. A memory controller hub 616 facilitatescommunication between a memory device and other components of system600, while an I/O Controller Hub (ICH) 630 provides connections to I/Odevices via a local I/O bus. In one embodiment, the logic of the memorycontroller hub 616 is integrated within the processor.

Memory device 620 can be a dynamic random-access memory (DRAM) device, astatic random-access memory (SRAM) device, flash memory device,phase-change memory device, or some other memory device having suitableperformance to serve as process memory. In one embodiment the memorydevice 620 can operate as system memory for the system 600, to storedata 622 and instructions 621 for use when the one or more processors602 executes an application or process. Memory controller hub 616 alsocouples with an optional external graphics processor 612, which maycommunicate with the one or more graphics processors 608 in processors602 to perform graphics and media operations.

In some embodiments, ICH 630 enables peripherals to connect to memorydevice 620 and processor 602 via a high-speed I/O bus. The I/Operipherals include, but are not limited to, an audio controller 646, afirmware interface 628, a wireless transceiver 626 (e.g., Wi-Fi,Bluetooth), a data storage device 624 (e.g., hard disk drive, flashmemory, etc.), and a legacy I/O controller 640 for coupling legacy(e.g., Personal System 2 (PS/2)) devices to the system. One or moreUniversal Serial Bus (USB) controllers 642 connect input devices, suchas keyboard and mouse 644 combinations. A network controller 634 mayalso couple to ICH 630. In some embodiments, a high-performance networkcontroller (not shown) couples to processor bus 610. It will beappreciated that the system 600 shown is exemplary and not limiting, asother types of data processing systems that are differently configuredmay also be used. For example, the I/O controller hub 630 may beintegrated within the one or more processor 602, or the memorycontroller hub 616 and I/O controller hub 630 may be integrated into adiscreet external graphics processor, such as the external graphicsprocessor 612.

FIG. 7 is a block diagram of an embodiment of a processor 700 having oneor more processor cores 702A to 702N, an integrated memory controller714, and an integrated graphics processor 708. Those elements of FIG. 7having the same reference numbers (or names) as the elements of anyother figure herein can operate or function in any manner similar tothat described elsewhere herein but are not limited to such. Processor700 can include additional cores up to and including additional core702N represented by the dashed lined boxes. Each of processor cores 702Ato 702N includes one or more internal cache units 704A to 704N. In someembodiments each processor core also has access to one or more sharedcached units 706.

The internal cache units 704A to 704N and shared cache units 706represent a cache memory hierarchy within the processor 700. The cachememory hierarchy may include at least one level of instruction and datacache within each processor core and one or more levels of sharedmid-level cache, such as a Level 2 (L2), Level 3 (L3), Level 4 (L4), orother levels of cache, where the highest level of cache before externalmemory is classified as the LLC. In some embodiments, cache coherencylogic maintains coherency between the various cache units 706 and 704Ato 704N.

In some embodiments, processor 700 may also include a set of one or morebus controller units 716 and a system agent core 710. The one or morebus controller units 716 manage a set of peripheral buses, such as oneor more Peripheral Component Interconnect buses (e.g., PCI, PCIExpress). System agent core 710 provides management functionality forthe various processor components. In some embodiments, system agent core710 includes one or more integrated memory controllers 714 to manageaccess to various external memory devices (not shown).

In some embodiments, one or more of the processor cores 702A to 702Ninclude support for simultaneous multi-threading. In such embodiment,the system agent core 710 includes components for coordinating andoperating cores 702A to 702N during multi-threaded processing. Systemagent core 710 may additionally include a power control unit (PCU),which includes logic and components to regulate the power state ofprocessor cores 702A to 702N and graphics processor 708.

In some embodiments, processor 700 additionally includes graphicsprocessor 708 to execute graphics processing operations. In someembodiments, the graphics processor 708 couples with the set of sharedcache units 706, and the system agent core 710, including the one ormore integrated memory controllers 714. In some embodiments, a displaycontroller 711 is coupled with the graphics processor 708 to drivegraphics processor output to one or more coupled displays. In someembodiments, display controller 711 may be a separate module coupledwith the graphics processor via at least one interconnect, or may beintegrated within the graphics processor 708 or system agent core 710.

In some embodiments, a ring based interconnect unit 712 is used tocouple the internal components of the processor 700. However, analternative interconnect unit may be used, such as a point-to-pointinterconnect, a switched interconnect, or other techniques, includingtechniques well known in the art. In some embodiments, graphicsprocessor 708 couples with the ring interconnect 712 via an I/O link713.

The exemplary I/O link 713 represents at least one of multiple varietiesof I/O interconnects, including an on package I/O interconnect whichfacilitates communication between various processor components and ahigh-performance embedded memory module 718, such as an eDRAM (orembedded DRAM) module. In some embodiments, each of the processor cores702 to 702N and graphics processor 808 use embedded memory modules 718as a shared Last Level Cache.

In some embodiments, processor cores 702A to 702N are homogenous coresexecuting the same instruction set architecture. In another embodiment,processor cores 702A to 702N are heterogeneous in terms of instructionset architecture (ISA), where one or more of processor cores 702A to702N execute a first instruction set, while at least one of the othercores executes a subset of the first instruction set or a differentinstruction set. In one embodiment processor cores 702A to 702N areheterogeneous in terms of microarchitecture, where one or more coreshaving a relatively higher power consumption couple with one or morepower cores having a lower power consumption. Additionally, processor700 can be implemented on one or more chips or as an SoC integratedcircuit having the illustrated components, in addition to othercomponents.

FIG. 8 is a block diagram of a graphics processor 800, which may be adiscrete graphics processing unit, or may be a graphics processorintegrated with a plurality of processing cores. In some embodiments,the graphics processor communicates via a memory mapped I/O interface toregisters on the graphics processor and with commands placed into theprocessor memory. In some embodiments, graphics processor 800 includes amemory interface 814 to access memory. Memory interface 814 can be aninterface to local memory, one or more internal caches, one or moreshared external caches, and/or to system memory.

In some embodiments, graphics processor 800 also includes a displaycontroller 802 to drive display output data to a display device 820.Display controller 802 includes hardware for one or more overlay planesfor the display and composition of multiple layers of video or userinterface elements. In some embodiments, graphics processor 800 includesa video codec engine 806 to encode, decode, or transcode media to, from,or between one or more media encoding formats, including, but notlimited to Moving Picture Experts Group (MPEG) formats such as MPEG-2,Advanced Video Coding (AVC) formats such as H.264/MPEG-4 AVC, as well asthe Society of Motion Picture & Television Engineers (SMPTE) 421M/VC-1,and Joint Photographic Experts Group (JPEG) formats such as JPEG, andMotion JPEG (MJPEG) formats.

In some embodiments, graphics processor 800 includes a block imagetransfer (BLIT) engine 804 to perform two-dimensional (2D) rasterizeroperations including, for example, bit-boundary block transfers.However, in one embodiment, 2D graphics operations are performed usingone or more components of graphics processing engine (GPE) 810. In someembodiments, graphics processing engine 810 is a compute engine forperforming graphics operations, including three-dimensional (3D)graphics operations and media operations.

In some embodiments, GPE 810 includes a 3D pipeline 812 for performing3D operations, such as rendering three-dimensional images and scenesusing processing functions that act upon 3D primitive shapes (e.g.,rectangle, triangle, etc.). The 3D pipeline 812 includes programmableand fixed function elements that perform various tasks within theelement and/or spawn execution threads to a 3D/Media sub-system 815.While 3D pipeline 812 can be used to perform media operations, anembodiment of GPE 810 also includes a media pipeline 816 that isspecifically used to perform media operations, such as videopost-processing and image enhancement.

In some embodiments, media pipeline 816 includes fixed function orprogrammable logic units to perform one or more specialized mediaoperations, such as video decode acceleration, video de-interlacing, andvideo encode acceleration in place of, or on behalf of video codecengine 806. In some embodiments, media pipeline 816 additionallyincludes a thread spawning unit to spawn threads for execution on3D/Media sub-system 815. The spawned threads perform computations forthe media operations on one or more graphics execution units included in3D/Media sub-system 815.

In some embodiments, 3D/Media subsystem 815 includes logic for executingthreads spawned by 3D pipeline 812 and media pipeline 816. In oneembodiment, the pipelines send thread execution requests to 3D/Mediasubsystem 815, which includes thread dispatch logic for arbitrating anddispatching the various requests to available thread executionresources. The execution resources include an array of graphicsexecution units to process the 3D and media threads. In someembodiments, 3D/Media subsystem 815 includes one or more internal cachesfor thread instructions and data. In some embodiments, the subsystemalso includes shared memory, including registers and addressable memory,to share data between threads and to store output data.

FIG. 9 is a generalized diagram of a machine learning software stack900. A machine learning application 1102 can be configured to train aneural network using a training dataset or to use a trained deep neuralnetwork to implement machine intelligence. The machine learningapplication 902 can include training and inference functionality for aneural network and/or specialized software that can be used to train aneural network before deployment. The machine learning application 902can implement any type of machine intelligence including but not limitedto image recognition, mapping and localization, autonomous navigation,speech synthesis, medical imaging, or language translation.

Hardware acceleration for the machine learning application 902 can beenabled via a machine learning framework 904. The machine learningframework 904 can provide a library of machine learning primitives.Machine learning primitives are basic operations that are commonlyperformed by machine learning algorithms. Without the machine learningframework 904, developers of machine learning algorithms would berequired to create and optimize the main computational logic associatedwith the machine learning algorithm, then re-optimize the computationallogic as new parallel processors are developed. Instead, the machinelearning application can be configured to perform the necessarycomputations using the primitives provided by the machine learningframework 904. Exemplary primitives include tensor convolutions,activation functions, and pooling, which are computational operationsthat are performed while training a convolutional neural network (CNN).The machine learning framework 904 can also provide primitives toimplement basic linear algebra subprograms performed by manymachine-learning algorithms, such as matrix and vector operations.

The machine learning framework 904 can process input data received fromthe machine learning application 902 and generate the appropriate inputto a compute framework 906. The compute framework 906 can abstract theunderlying instructions provided to the GPGPU driver 908 to enable themachine learning framework 904 to take advantage of hardwareacceleration via the GPGPU hardware 910 without requiring the machinelearning framework 904 to have intimate knowledge of the architecture ofthe GPGPU hardware 910. Additionally, the compute framework 1106 canenable hardware acceleration for the machine learning framework 904across a variety of types and generations of the GPGPU hardware 910.

The computing architecture provided by embodiments described herein canbe configured to perform the types of parallel processing that isparticularly suited for training and deploying neural networks formachine learning. A neural network can be generalized as a network offunctions having a graph relationship. As is known in the art, there area variety of types of neural network implementations used in machinelearning. One exemplary type of neural network is the feedforwardnetwork, as previously described.

A second exemplary type of neural network is the Convolutional NeuralNetwork (CNN). A CNN is a specialized feedforward neural network forprocessing data having a known, grid-like topology, such as image data.Accordingly, CNNs are commonly used for compute vision and imagerecognition applications, but they also may be used for other types ofpattern recognition such as speech and language processing. The nodes inthe CNN input layer are organized into a set of “filters” (featuredetectors inspired by the receptive fields found in the retina), and theoutput of each set of filters is propagated to nodes in successivelayers of the network. The computations for a CNN include applying theconvolution mathematical operation to each filter to produce the outputof that filter. Convolution is a specialized kind of mathematicaloperation performed by two functions to produce a third function that isa modified version of one of the two original functions. Inconvolutional network terminology, the first function to the convolutioncan be referred to as the input, while the second function can bereferred to as the convolution kernel. The output may be referred to asthe feature map. For example, the input to a convolution layer can be amultidimensional array of data that defines the various color componentsof an input image. The convolution kernel can be a multidimensionalarray of parameters, where the parameters are adapted by the trainingprocess for the neural network.

Recurrent neural networks (RNNs) are a family of feedforward neuralnetworks that include feedback connections between layers. RNNs enablemodeling of sequential data by sharing parameter data across differentparts of the neural network. The architecture for a RNN includes cycles.The cycles represent the influence of a present value of a variable onits own value at a future time, as at least a portion of the output datafrom the RNN is used as feedback for processing subsequent input in asequence. This feature makes RNNs particularly useful for languageprocessing due to the variable nature in which language data can becomposed.

The figures described herein present exemplary feedforward, CNN, and RNNnetworks, as well as describe a general process for respectivelytraining and deploying each of those types of networks. It will beunderstood that these descriptions are exemplary and non-limiting as toany specific embodiment described herein and the concepts illustratedcan be applied generally to deep neural networks and machine learningtechniques in general.

The exemplary neural networks described above can be used to performdeep learning. Deep learning is machine learning using deep neuralnetworks. The deep neural networks used in deep learning are artificialneural networks composed of multiple hidden layers, as opposed toshallow neural networks that include only a single hidden layer. Deeperneural networks are generally more computationally intensive to train.However, the additional hidden layers of the network enable multisteppattern recognition that results in reduced output error relative toshallow machine learning techniques.

Deep neural networks used in deep learning typically include a front-endnetwork to perform feature recognition coupled to a back-end networkwhich represents a mathematical model that can perform operations (e.g.,object classification, speech recognition, etc.) based on the featurerepresentation provided to the model. Deep learning enables machinelearning to be performed without requiring hand crafted featureengineering to be performed for the model. Instead, deep neural networkscan learn features based on statistical structure or correlation withinthe input data. The learned features can be provided to a mathematicalmodel that can map detected features to an output. The mathematicalmodel used by the network is generally specialized for the specific taskto be performed, and different models will be used to perform differenttask.

Once the neural network is structured, a learning model can be appliedto the network to train the network to perform specific tasks. Thelearning model describes how to adjust the weights within the model toreduce the output error of the network. Backpropagation of errors is acommon method used to train neural networks. An input vector ispresented to the network for processing. The output of the network iscompared to the desired output using a loss function and an error valueis calculated for each of the neurons in the output layer. The errorvalues are then propagated backwards until each neuron has an associatederror value which roughly represents its contribution to the originaloutput. The network can then learn from those errors using an algorithm,such as the stochastic gradient descent algorithm, to update the weightsof the of the neural network.

FIG. 10 illustrates training and deployment of a deep neural network.Once a given network has been structured for a task the neural networkis trained using a training dataset 1002. Various training frameworkshave been developed to enable hardware acceleration of the trainingprocess. For example, the machine learning framework 904 of FIG. 9 maybe configured as a training framework 1004. The training framework 1004can hook into an untrained neural network 1006 and enable the untrainedneural net to be trained using the parallel processing resourcesdescribed herein to generate a trained neural network 1008. To start thetraining process the initial weights may be chosen randomly or bypre-training using a deep belief network. The training cycle then beperformed in either a supervised or unsupervised manner.

Supervised learning is a learning method in which training is performedas a mediated operation, such as when the training dataset 1002 includesinput paired with the desired output for the input, or where thetraining dataset includes input having known output and the output ofthe neural network is manually graded. The network processes the inputsand compares the resulting outputs against a set of expected or desiredoutputs. Errors are then propagated back through the system. Thetraining framework 1004 can adjust to adjust the weights that controlthe untrained neural network 1006. The training framework 1004 canprovide tools to monitor how well the untrained neural network 1006 isconverging towards a model suitable to generating correct answers basedon known input data. The training process occurs repeatedly as theweights of the network are adjusted to refine the output generated bythe neural network. The training process can continue until the neuralnetwork reaches a statistically desired accuracy associated with atrained neural network 1208. The trained neural network 1008 can then bedeployed to implement any number of machine learning operations.

Unsupervised learning is a learning method in which the network attemptsto train itself using unlabeled data. Thus, for unsupervised learningthe training dataset 1002 will include input data without any associatedoutput data. The untrained neural network 1006 can learn groupingswithin the unlabeled input and can determine how individual inputs arerelated to the overall dataset. Unsupervised training can be used togenerate a self-organizing map, which is a type of trained neuralnetwork 1007 capable of performing operations useful in reducing thedimensionality of data. Unsupervised training can also be used toperform anomaly detection, which allows the identification of datapoints in an input dataset that deviate from the normal patterns of thedata.

Variations on supervised and unsupervised training may also be employed.Semi-supervised learning is a technique in which in the training dataset1002 includes a mix of labeled and unlabeled data of the samedistribution. Incremental learning is a variant of supervised learningin which input data is continuously used to further train the model.Incremental learning enables the trained neural network 1008 to adapt tothe new data 1012 without forgetting the knowledge instilled within thenetwork during initial training.

Whether supervised or unsupervised, the training process forparticularly deep neural networks may be too computationally intensivefor a single compute node. Instead of using a single compute node, adistributed network of computational nodes can be used to accelerate thetraining process.

The following examples pertain to further embodiments. In example one,an apparatus to generate a user-defined crosswalk comprises a processorto receive an input from a user to request a crosswalk across a roadwayat a selected location, and a memory coupled to the processor to storeinformation regarding the crosswalk, wherein the processor is totransmit the request to one or more vehicles using the roadway, and toreceive a response indicating whether the crosswalk request is acceptedsuch that the one or more vehicles are to stop to allow the user tocross the roadway using the crosswalk at the selected location in theevent the crosswalk request is accepted. Example two may include thesubject matter of example one or any of the examples described herein,wherein the response indicates that the crosswalk request is rejected.Example three 3 may include the subject matter of example one or any ofthe examples described herein, wherein the response indicates that thecrosswalk is rejected, and includes a recommendation for the crosswalkat an alternate location. Example four may include the subject matter ofexample one or any of the examples described herein, wherein theprocessor is to transmit an acceptance or rejection of therecommendation, and wherein the one or more vehicles are to stop toallow the user to cross the roadway using the crosswalk at the alternatelocation in the event the recommendation is accepted. Example five mayinclude the subject matter of example one or any of the examplesdescribed herein, wherein the response includes at time at which thecrosswalk is to be available. Example six may include the subject matterof example one or any of the examples described herein, wherein therequest is to be transmitted to a server in communication with the oneor more vehicles. Example seven may include the subject matter ofexample one or any of the examples described herein, wherein the requestis directly transmitted to the one or more vehicles via a wireless widearea network (WWAN), a network operating in compliance with a ThirdGeneration Partnership Project (3GPP) standard, a wireless local areanetwork (WLAN), a network operating in accordance with an Institute ofElectrical and Electronics Engineers (IEEE) 802.11 standard, a meshnetwork, a PC5 link, or a combination thereof.

In example eight, a self-driving vehicle to respond to a user-definedcrosswalk comprises a processor to receive a request for a crosswalkacross a roadway for a user at a first location, and a memory coupled tothe processor to store information regarding the crosswalk, wherein theprocessor is to transmit a response to the request indicating whetherthe crosswalk request is accepted such that the self-driving vehicle isto stop to allow the user to cross the roadway using the crosswalk atthe first location in the event the crosswalk request is accepted.Example nine may include the subject matter of example eight or any ofthe examples described herein, wherein the response indicates that thecrosswalk request is rejected. Example ten may include the subjectmatter of example eight or any of the examples described herein, whereinthe response indicates that the crosswalk is rejected, and includes arecommendation for the crosswalk at a second location. Example elevenmay include the subject matter of example eight or any of the examplesdescribed herein, wherein the processor is to receive an acceptance orrejection of the recommendation, and wherein the self-driving vehicle isto stop to allow the user to cross the roadway using the crosswalk atthe second location in the event the recommendation is accepted. Exampletwelve may include the subject matter of example eight or any of theexamples described herein, wherein the response includes at time atwhich the crosswalk is to be available. Example thirteen may include thesubject matter of example eight or any of the examples described herein,wherein the request received from a server in communication with theself-driving vehicle. Example fourteen may include the subject matter ofexample eight or any of the examples described herein, wherein therequest is directly transmitted to the self-driving vehicle via awireless wide area network (WWAN), a network operating in compliancewith a Third Generation Partnership Project (3GPP) standard, a wirelesslocal area network (WLAN), a network operating in accordance with anInstitute of Electrical and Electronics Engineers (IEEE) 802.11standard, a mesh network, a PC5 link, or a combination thereof.

In example fifteen, a system to manage a user-defined crosswalkcomprises a processor to receive a request for a crosswalk across aroadway for a user at a first location, and a memory coupled to theprocessor to store information regarding the crosswalk, wherein theprocessor is to transmit a response to the request indicating whetherthe crosswalk request is accepted, and to transmit a command to one ormore vehicles in the roadway to stop to allow the user to cross theroadway using the crosswalk at the first location in the event thecrosswalk request is accepted. Example sixteen may include the subjectmatter of example fifteen or any of the examples described herein,wherein the response indicates that the crosswalk request is rejected.Example seventeen may include the subject matter of example fifteen orany of the examples described herein, wherein the response indicatesthat the crosswalk is rejected, and includes a recommendation for thecrosswalk at a second location. Example eighteen may include the subjectmatter of example fifteen or any of the examples described herein,wherein the processor is to receive an acceptance or rejection of therecommendation, and wherein the one or more vehicles are to stop toallow the user to cross the roadway using the crosswalk at the secondlocation in the event the recommendation is accepted. Example nineteenmay include the subject matter of example fifteen or any of the examplesdescribed herein, wherein the response includes at time at which thecrosswalk is to be available. Example twenty may include the subjectmatter of example fifteen or any of the examples described herein,wherein the request is received from a device of the user. Exampletwenty-one may include the subject matter of example fifteen or any ofthe examples described herein, wherein the request is received from adevice in an environment of the roadway, wherein the device includes acamera, microphone, or sensor, or a combination thereof.

In example twenty-two, one or more non-transitory machine-readable mediahave instructions thereon that, when executed, result in receiving aninput from a user to request a crosswalk across a roadway at a selectedlocation, transmitting the request to one or more vehicles using theroadway, and receiving a response indicating whether the crosswalkrequest is accepted such that the one or more vehicles are to stop toallow the user to cross the roadway using the crosswalk at the selectedlocation in the event the crosswalk request is accepted. Exampletwenty-three may include the subject matter of example twenty-two or anyof the examples described herein, wherein the response indicates thatthe crosswalk request is rejected. Example twenty-four may include thesubject matter of example twenty-two or any of the examples describedherein, wherein the response indicates that the crosswalk is rejected,and includes a recommendation for the crosswalk at an alternatelocation. Example twenty-five may include the subject matter of exampletwenty-two or any of the examples described herein, when executed,further result in transmitting an acceptance or rejection of therecommendation, and wherein the one or more vehicles are to stop toallow the user to cross the roadway using the crosswalk at the alternatelocation in the event the recommendation is accepted. Example twenty-sixmay include the subject matter of example twenty-two or any of theexamples described herein, wherein the response includes at time atwhich the crosswalk is to be available. Example twenty-seven may includethe subject matter of example twenty-two or any of the examplesdescribed herein, wherein the request is to be transmitted to a serverin communication with the one or more vehicles. Example twenty-eight mayinclude the subject matter of example twenty-two or any of the examplesdescribed herein, wherein the request is directly transmitted to the oneor more vehicles via a wireless wide area network (WWAN), a networkoperating in compliance with a Third Generation Partnership Project(3GPP) standard, a wireless local area network (WLAN), a networkoperating in accordance with an Institute of Electrical and ElectronicsEngineers (IEEE) 802.11 standard, a mesh network, a PC5 link, or acombination thereof.

In various embodiments, the operations discussed herein, e.g., withreference to the figures described herein, may be implemented ashardware (e.g., logic circuitry), software, firmware, or combinationsthereof, which may be provided as a computer program product, e.g.,including a tangible (e.g., non-transitory) machine-readable orcomputer-readable medium having stored thereon instructions (or softwareprocedures) used to program a computer to perform a process discussedherein. The machine-readable medium may include a storage device such asthose discussed with respect to the present figures.

Additionally, such computer-readable media may be downloaded as acomputer program product, wherein the program may be transferred from aremote computer (e.g., a server) to a requesting computer (e.g., aclient) by way of data signals provided in a carrier wave or otherpropagation medium via a communication link (e.g., a bus, a modem, or anetwork connection).

Reference in the specification to “one embodiment” or “an embodiment”means that a particular feature, structure, and/or characteristicdescribed in connection with the embodiment may be included in at leastan implementation. The appearances of the phrase “in one embodiment” invarious places in the specification may or may not be all referring tothe same embodiment.

Also, in the description and claims, the terms “coupled” and“connected,” along with their derivatives, may be used. In someembodiments, “connected” may be used to indicate that two or moreelements are in direct physical or electrical contact with each other.“Coupled” may mean that two or more elements are in direct physical orelectrical contact. However, “coupled” may also mean that two or moreelements may not be in direct contact with each other, but may stillcooperate or interact with each other.

Thus, although embodiments have been described in language specific tostructural features and/or methodological acts, it is to be understoodthat claimed subject matter may not be limited to the specific featuresor acts described. Rather, the specific features and acts are disclosedas sample forms of implementing the claimed subject matter.

1. An apparatus to generate a user-defined crosswalk, comprising: aprocessor to receive an input from a user to request a crosswalk acrossa roadway at a selected location; and a memory coupled to the processorto store information regarding the crosswalk; wherein the processor isto transmit the request to one or more vehicles using the roadway, andto receive a response indicating whether the crosswalk request isaccepted such that the one or more vehicles are to stop to allow theuser to cross the roadway using the crosswalk at the selected locationin the event the crosswalk request is accepted.
 2. The apparatus ofclaim 1, wherein the response indicates that the crosswalk request isrejected.
 3. The apparatus of claim 1, wherein the response indicatesthat the crosswalk is rejected, and includes a recommendation for thecrosswalk at an alternate location.
 4. The apparatus of claim 3, whereinthe processor is to transmit an acceptance or rejection of therecommendation, and wherein the one or more vehicles are to stop toallow the user to cross the roadway using the crosswalk at the alternatelocation in the event the recommendation is accepted.
 5. The apparatusof claim 1, wherein the response includes at time at which the crosswalkis to be available.
 6. The apparatus of claim 1, wherein the request isto be transmitted to a server in communication with the one or morevehicles.
 7. The apparatus of claim 1, wherein the request is directlytransmitted to the one or more vehicles via a wireless wide area network(WWAN), a network operating in compliance with a Third GenerationPartnership Project (3GPP) standard, a wireless local area network(WLAN), a network operating in accordance with an Institute ofElectrical and Electronics Engineers (IEEE) 802.11 standard, a meshnetwork, a PC5 link, or a combination thereof.
 8. A self-driving vehicleto respond to a user-defined crosswalk, comprising: a processor toreceive a request for a crosswalk across a roadway for a user at a firstlocation; and a memory coupled to the processor to store informationregarding the crosswalk; wherein the processor is to transmit a responseto the request indicating whether the crosswalk request is accepted suchthat the self-driving vehicle is to stop to allow the user to cross theroadway using the crosswalk at the first location in the event thecrosswalk request is accepted.
 9. The apparatus of claim 8, wherein theresponse indicates that the crosswalk request is rejected.
 10. Theapparatus of claim 8, wherein the response indicates that the crosswalkis rejected, and includes a recommendation for the crosswalk at a secondlocation.
 11. The apparatus of claim 10, wherein the processor is toreceive an acceptance or rejection of the recommendation, and whereinthe self-driving vehicle is to stop to allow the user to cross theroadway using the crosswalk at the second location in the event therecommendation is accepted.
 12. The apparatus of claim 8, wherein theresponse includes at time at which the crosswalk is to be available. 13.The apparatus of claim 8, wherein the request received from a server incommunication with the self-driving vehicle.
 14. The apparatus of claim8, wherein the request is directly transmitted to the self-drivingvehicle via a wireless wide area network (WWAN), a network operating incompliance with a Third Generation Partnership Project (3GPP) standard,a wireless local area network (WLAN), a network operating in accordancewith an Institute of Electrical and Electronics Engineers (IEEE) 802.11standard, a mesh network, a PC5 link, or a combination thereof.
 15. Asystem to manage a user-defined crosswalk, comprising: a processor toreceive a request for a crosswalk across a roadway for a user at a firstlocation; and a memory coupled to the processor to store informationregarding the crosswalk; wherein the processor is to transmit a responseto the request indicating whether the crosswalk request is accepted, andto transmit a command to one or more vehicles in the roadway to stop toallow the user to cross the roadway using the crosswalk at the firstlocation in the event the crosswalk request is accepted.
 16. The systemof claim 15, wherein the response indicates that the crosswalk requestis rejected.
 17. The system of claim 15, wherein the response indicatesthat the crosswalk is rejected, and includes a recommendation for thecrosswalk at a second location.
 18. The system of claim 17, wherein theprocessor is to receive an acceptance or rejection of therecommendation, and wherein the one or more vehicles are to stop toallow the user to cross the roadway using the crosswalk at the secondlocation in the event the recommendation is accepted.
 19. The system ofclaim 15, wherein the response includes at time at which the crosswalkis to be available.
 20. The system of claim 15, wherein the request isreceived from a device of the user.
 21. The system of claim 15, whereinthe request is received from a device in an environment of the roadway,wherein the device includes a camera, microphone, or sensor, or acombination thereof.
 22. One or more non-transitory machine-readablemedia having instructions thereon that, when executed, result in:receiving an input from a user to request a crosswalk across a roadwayat a selected location; transmitting the request to one or more vehiclesusing the roadway; and receiving a response indicating whether thecrosswalk request is accepted such that the one or more vehicles are tostop to allow the user to cross the roadway using the crosswalk at theselected location in the event the crosswalk request is accepted. 23.The one or more non-transitory machine-readable media of claim 22,wherein the response indicates that the crosswalk request is rejected.24. The one or more non-transitory machine-readable media of claim 22,wherein the response indicates that the crosswalk is rejected, andincludes a recommendation for the crosswalk at an alternate location.25. The one or more non-transitory machine-readable media of claim 24,wherein the instructions, when executed, further result in transmittingan acceptance or rejection of the recommendation, and wherein the one ormore vehicles are to stop to allow the user to cross the roadway usingthe crosswalk at the alternate location in the event the recommendationis accepted.
 26. The one or more non-transitory machine-readable mediaof claim 22, wherein the response includes at time at which thecrosswalk is to be available.
 27. The one or more non-transitorymachine-readable media of claim 22, wherein the request is to betransmitted to a server in communication with the one or more vehicles.28. The one or more non-transitory machine-readable media of claim 22,wherein the request is directly transmitted to the one or more vehiclesvia a wireless wide area network (WWAN), a network operating incompliance with a Third Generation Partnership Project (3GPP) standard,a wireless local area network (WLAN), a network operating in accordancewith an Institute of Electrical and Electronics Engineers (IEEE) 802.11standard, a mesh network, a PC5 link, or a combination thereof.